Model Binding এর ধারণা

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) বাইন্ডিং এবং ভ্যালিডেশন (Model Binding and Validation) |
250
250

Model Binding হলো ASP.NET Core-এ একটি শক্তিশালী ফিচার, যা HTTP রিকোয়েস্টের ডেটা (যেমন ফর্ম ডেটা, কুইরি স্ট্রিং, রুট ডেটা, এবং হেডার) থেকে ডেটা নিয়ে অ্যাপ্লিকেশনের অ্যাকশন মেথডে ডিফাইন করা প্যারামিটারে বা মডেলে রূপান্তর করে। এটি ডেভেলপারদের জন্য ডেটা প্রসেসিং সহজ এবং কার্যকর করে তোলে।


Model Binding কীভাবে কাজ করে?

Model Binding স্বয়ংক্রিয়ভাবে নিচের উৎসগুলো থেকে ডেটা পায় এবং সেটিকে মডেলে বা প্যারামিটারে রূপান্তর করে:

  • Form Data: HTML ফর্মের ইনপুট ফিল্ড থেকে পাঠানো ডেটা।
  • Route Data: URL এর রুট টেমপ্লেট থেকে প্রাপ্ত ডেটা।
  • Query String: URL এর কুইরি স্ট্রিং অংশ (যেমন: ?id=10) থেকে ডেটা।
  • Header Values: HTTP রিকোয়েস্ট হেডার থেকে ডেটা।
  • JSON Body: API রিকোয়েস্টের JSON পে-লোড থেকে ডেটা।

Model Binding স্বয়ংক্রিয়ভাবে এই উৎসগুলো থেকে ডেটা পেয়ে উপযুক্ত টাইপে রূপান্তর করে এবং অ্যাকশন মেথডের প্যারামিটার বা মডেলে সেট করে।


Model Binding প্রক্রিয়া

  1. ডেটা উৎস সনাক্তকরণ: Model Binding প্রথমে ডেটা উৎস নির্ধারণ করে (যেমন: ফর্ম ডেটা, রুট ডেটা বা কুইরি স্ট্রিং)।
  2. কী-ম্যাচিং: ডেটার নাম এবং মডেলের প্রপার্টি বা প্যারামিটারের নাম মিলিয়ে দেখে।
  3. টাইপ কনভার্সন: ডেটা প্রয়োজনীয় টাইপে রূপান্তরিত করে।
  4. ভ্যালিডেশন: ডেটা ভ্যালিডেশনের জন্য ডেটা অ্যানোটেশন বা কাস্টম ভ্যালিডেটর ব্যবহার করা হয়।

Model Binding উদাহরণ

সাধারণ উদাহরণ

একটি URL: /Product/Details/10

Controller এবং Action Method:

public IActionResult Details(int id)
{
    // id = 10
    return View();
}

এখানে Model Binding স্বয়ংক্রিয়ভাবে রুট ডেটা থেকে id এর মান ১০ হিসেবে ধরে অ্যাকশন মেথডের প্যারামিটারে সেট করেছে।

মডেল ব্যবহার

HTML ফর্ম ডেটা থেকে মডেল বাইন্ডিংয়ের উদাহরণ:

<form method="post" action="/Product/Create">
    <input type="text" name="Name" />
    <input type="number" name="Price" />
    <button type="submit">Create</button>
</form>

Controller এবং Model:

public class Product
{
    public string Name { get; set; }
    public decimal Price { get; set; }
}

[HttpPost]
public IActionResult Create(Product product)
{
    // product.Name এবং product.Price ফর্ম ডেটা থেকে বাউন্ড হবে।
    return View(product);
}

Model Binding স্বয়ংক্রিয়ভাবে ফর্ম থেকে ডেটা নিয়ে Product মডেলের প্রপার্টিতে সেট করে।


Model Binding এর সুবিধা

  • স্বয়ংক্রিয় ডেটা রূপান্তর: HTTP রিকোয়েস্ট থেকে ডেটা সরাসরি মডেল বা প্যারামিটারে রূপান্তর করা হয়।
  • সহজ কোডিং স্টাইল: ডেটা প্রসেসিংয়ের জন্য অতিরিক্ত কোড লেখার প্রয়োজন হয় না।
  • টাইপ সেফটি: ডেটা সঠিক টাইপে রূপান্তরিত হওয়ায় কোডে কম ত্রুটি থাকে।
  • JSON এবং Form Data হ্যান্ডলিং: এটি JSON, Form Data এবং Query String সমর্থন করে।
  • ভ্যালিডেশন ইন্টিগ্রেশন: Model Binding সরাসরি Data Annotations এর মাধ্যমে ডেটা ভ্যালিডেশন সমর্থন করে।

Model Binding এ Data Annotations ব্যবহার

Data Annotations ব্যবহার করে মডেল প্রপার্টিগুলোর জন্য ভ্যালিডেশন রুল নির্ধারণ করা যায়। উদাহরণস্বরূপ:

public class Product
{
    [Required(ErrorMessage = "Name is required.")]
    public string Name { get; set; }

    [Range(1, 1000, ErrorMessage = "Price must be between 1 and 1000.")]
    public decimal Price { get; set; }
}

এটি নিশ্চিত করে যে Name ফিল্ডটি ফাঁকা রাখা যাবে না এবং Price এর মান ১ থেকে ১০০০ এর মধ্যে থাকতে হবে।


Model Binding এর সীমাবদ্ধতা

  • কমপ্লেক্স ডেটা স্ট্রাকচার: খুব জটিল বা নেস্টেড ডেটা স্ট্রাকচারের ক্ষেত্রে Model Binding ব্যর্থ হতে পারে।
  • ডিফল্ট ভ্যালু: ডেটা না পাওয়া গেলে ডিফল্ট মান ব্যবহার করা হয়, যা কখনো কখনো অপ্রত্যাশিত হতে পারে।
  • কাস্টম লজিকের প্রয়োজন: কাস্টম ডেটা প্রসেসিং বা ভ্যালিডেশনের ক্ষেত্রে অতিরিক্ত কাজ করতে হতে পারে।

Model Binding কাস্টমাইজেশন

Model Binding কাস্টমাইজ করার জন্য Custom Model Binder ব্যবহার করা যায়। উদাহরণস্বরূপ:

public class CustomBinder : IModelBinder
{
    public Task BindModelAsync(ModelBindingContext bindingContext)
    {
        var value = bindingContext.ValueProvider.GetValue("customKey").FirstValue;
        bindingContext.Result = ModelBindingResult.Success(value);
        return Task.CompletedTask;
    }
}

উপসংহার

Model Binding ASP.NET Core-এর একটি শক্তিশালী ফিচার যা HTTP রিকোয়েস্ট থেকে ডেটা পেতে এবং সেটিকে অ্যাকশন মেথডের প্যারামিটার বা মডেলে রূপান্তর করতে সাহায্য করে। এটি ডেভেলপারদের কোড কমপ্লেক্সিটি কমিয়ে এবং ডেটা প্রসেসিং সহজ করে অ্যাপ্লিকেশন ডেভেলপমেন্টকে দ্রুততর করে তোলে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion